#!/usr/bin/env python
# coding=utf-8

'''
pandas 操作excel
官网参数详解：https://pandas.pydata.org/docs/reference/api/pandas.read_excel.html

参考文章
https://mp.weixin.qq.com/s/V0sMZAwJWDxPYFyUVzwZGA

下面解释常用参数的含义：

io：文件路径，支持 str, bytes, ExcelFile, xlrd.Book, path object, or file-like object。默认读取第一个sheet的内容。案例："/desktop/student.xlsx"
sheet_name：sheet表名，支持 str, int, list, or None；默认是0，索引号从0开始，表示第一个sheet。案例：sheet_name=1, sheet_name="sheet1"，sheet_name=[1,2,"sheet3"]。None 表示引用所有sheet
header：表示用第几行作为表头，支持 int, list of int；默认是0，第一行的数据当做表头。header=None表示不使用数据源中的表头，Pandas自动使用0,1,2,3…的自然数作为索引。
names：表示自定义表头的名称，此时需要传递数组参数。
index_col：指定列属性为行索引列，支持 int, list of int, 默认是None，也就是索引为0,1,2,3等自然数的列用作DataFrame的行标签。如果传入的是列表形式，则行索引会是多层索引
usecols：待解析的列，支持 int, str, list-like, or callable ，默认是 None，表示解析全部的列。
dtype：指定列属性的字段类型。案例：{‘a’: np.float64, ‘b’: np.int32}；默认为None，也就是不改变数据类型。
engine：解析引擎；可以接受的参数有"xlrd"、"openpyxl"、"odf"、"pyxlsb"，用于使用第三方的库去解析excel文件
“xlrd”支持旧式 Excel 文件 (.xls)
“openpyxl”支持更新的 Excel 文件格式
“odf”支持 OpenDocument 文件格式(.odf、.ods、.odt)
“pyxlsb”支持二进制 Excel 文件
converters：对指定列进行指定函数的处理，传入参数为列名与函数组成的字典，和usecols参数连用。key 可以是列名或者列的序号，values是函数，可以自定义的函数或者Python的匿名lambda函数
skiprows：跳过指定的行（可选参数），类型为：list-like, int, or callable
nrows：指定读取的行数，通常用于较大的数据文件中。类型int, 默认是None，读取全部数据
na_values：指定列的某些特定值为NaN
keep_default_na：是否导入空值，默认是导入，识别为NaN
'''

import pandas as pd

# 读取指定工作簿中的第一张表的数据
# 不指定路径必须安装xlrd库,不在同一路径下使用相对路径
# df=pd.read_excel("./Pandas_Excel-old.xls")
df = pd.read_excel("Pandas_Excel-old.xls")
print(df)

# 参数sheet_name,指定表读取数据,注意大小写区分
df = pd.read_excel("Pandas_Excel-old.xls", sheet_name='Sheet2')
print(df)

# header：表示用第几行作为表头，支持 int, list of int；默认是0
df = pd.read_excel('Pandas_Excel-old.xls', header=[0])  # 单独一行做表头
#df = pd.read_excel('Pandas_Excel-old.xls', header=[1, 3])  # 指定多行做表头
print(df)
